#!/usr/bin/env node

// 这是cli的入口文件
// linux/macOS需要修改该问价你的权限 chmod 755 cli.js

// 脚手架分为两步
// 1.通过命令行交互询问问题
// 2.根据用户的回答的结果生成文件

const path = require('path');
const fs = require('fs')
const inquirer = require('inquirer');
const ejs = require('ejs');
inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'your project name?'
   }
]).then(answer => {
    // 获取模板的路径
    const tmplDir = path.join(__dirname, 'templates');
    // 获取需要生成文件的路径
    const destDir = process.cwd();
    // 读取文件夹下的文件，获取到的是每个文件的文件名
    fs.readdir(tmplDir, (err, files) => {
        if (err) throw err;
        files.forEach(fileName => {
            // 读取每个文件，配置文件内容
            ejs.renderFile(path.join(tmplDir, fileName), answer, (err, result) => {
                if (err) throw err;
                // 将返回的文件内容写入到目标文件
                fs.writeFileSync(path.join(destDir, fileName), result);
            })
        })
    })
})